; Music of Herbert's Dummy Run (1986) (Mikro-Gen)
; Ripped by Megachur the 05/02/2009

	write "HERBERDR.BIN"

music_date_rip	equ &0529
music_adr	equ &17c7
first_theme	equ 0
last_theme	equ 0	; 0 -> 0

	read "music_header_v1_0.asm"

.l17cb equ $ + 4
.l17c9 equ $ + 2
.l17c7
	dw l19d4,l1b16,l1a9d
.l17d4 equ $ + 7
.l17d3 equ $ + 6
.l17d2 equ $ + 5
.l17d1 equ $ + 4
.l17d0 equ $ + 3
.l17cf equ $ + 2
.l17ce equ $ + 1
.l17cd
	db #01,#01,#01,#00,#02,#04,#06,#0f
.l17d6 equ $ + 1
.l17d5
	db #0f,#0f
;
.init_interrupt
;
	call l17e2
	ld hl,l181f
	ld (#0039),hl
	ei
	ret
;
.init_music
.l17e2
;
	ld a,#08
	ld (l1971),a
	ld a,#08
	ld c,#00
	call l5be2
	inc a
	call l5be2
	inc a
	call l5be2
	ld c,#38
	ld a,#07
	call l5be2
	ld hl,l19d4
	ld (l17c7),hl
	ld hl,l1b16
	ld (l17c9),hl
	ld hl,l1a9d
	ld (l17cb),hl
	ld a,#01
	ld (l17cd),a
	ld (l17ce),a
	ld (l17cf),a
	dec a
	ld (l17d0),a
	ret
.l181f
	push af
	push hl
	push bc
	push de
	ld a,(l1971)
	dec a
	ld (l1971),a
	or a
	jp nz,l1873
	ld a,#08
	ld (l1971),a
;
.play_music
;
	ld hl,l17d1
	dec (hl)
	jp nz,l183c
	ld (hl),#02
.l183c
	ld hl,l17d2
	dec (hl)
	jp nz,l1845
	ld (hl),#04
.l1845
	ld hl,l17d3
	dec (hl)
	jp nz,l184e
	ld (hl),#06
.l184e
	ld hl,l17cd
	dec (hl)
	jr nz,l18a8
	ld hl,(l17c7)
	ld a,(hl)
	cp #ff
	jr nz,l1879
.l185c
	ld a,#01
	ld (l17d0),a
	ld a,#08
	ld c,#00
	call l5be2
	inc a
	call l5be2
	inc a
	call l5be2
;di
;jr l1874	; modified by Megachur
	defs 3,0
.l1873
;ei
	ret
.l1874
	pop de
	pop bc
	pop hl
	pop af
	ret
.l1879
	ld (l17cd),a
	inc hl
	ld a,(hl)
	inc hl
	ld (l17c7),hl
	sub #17
	add a
	ld e,a
	ld d,#00
	ld hl,l1972
	add hl,de
	ld c,(hl)
	ld a,#00
	call l5be2
	inc hl
	ld c,(hl)
	inc a
	call l5be2
	ld a,#08
	ld c,#0f
	call l5be2
	ld a,c
	ld (l17d4),a
	ld a,#02
	ld (l17d1),a
.l18a8
	ld a,(l17d1)
	cp #01
	jp nz,l18c0
	ld a,(l17d4)
	or a
	jr z,l18c0
	dec a
	ld (l17d4),a
	ld c,a
	ld a,#08
	call l5be2
.l18c0
	ld hl,l17ce
	dec (hl)
	jp nz,l18ff
	ld hl,(l17c9)
	ld a,(hl)
	cp #ff
	jp z,l185c
	ld (l17ce),a
	inc hl
	ld a,(hl)
	inc hl
	ld (l17c9),hl
	sub #17
	add a
	ld e,a
	ld d,#00
	ld hl,l1972
	add hl,de
	ld c,(hl)
	ld a,#02
	call l5be2
	inc hl
	ld c,(hl)
	inc a
	call l5be2
	ld a,#09
	ld c,#0d
	call l5be2
	ld a,c
	ld (l17d5),a
	ld a,#04
	ld (l17d2),a
.l18ff
	ld a,(l17d2)
	cp #01
	jp nz,l1917
	ld a,(l17d5)
	or a
	jr z,l1917
	dec a
	ld (l17d5),a
	ld c,a
	ld a,#09
	call l5be2
.l1917
	ld hl,l17cf
	dec (hl)
	jp nz,l1956
	ld hl,(l17cb)
	ld a,(hl)
	cp #ff
	jp z,l185c
	ld (l17cf),a
	inc hl
	ld a,(hl)
	inc hl
	ld (l17cb),hl
	sub #17
	add a
	ld e,a
	ld d,#00
	ld hl,l1972
	add hl,de
	ld c,(hl)
	ld a,#04
	call l5be2
	inc hl
	ld c,(hl)
	inc a
	call l5be2
	ld a,#0c
	ld c,#0a
	call l5be2
	ld a,c
	ld (l17d6),a
	ld a,#06
	ld (l17d3),a
.l1956
	ld a,(l17d3)
	cp #01
	jp nz,l196e
	ld a,(l17d6)
	or a
	jr z,l196e
	dec a
	ld (l17d6),a
	ld c,a
	ld a,#0a
	call l5be2
.l196e
	jp l1873
.l1971
	ex af,af'
.l1972
	dw #0000,#03bc,#0386,#0353
	dw #0324,#02f6,#02cc,#02a4
	dw #027e,#025a,#0238,#0218
	dw #01fa,#01de,#01c3,#01aa
	dw #0192,#017b,#0166,#0152
	dw #013f,#012d,#011c,#010c
	dw #00fd,#00ef,#00e1,#00d5
	dw #00c9,#00be,#00b3,#00a9
	dw #009f,#0096,#008e,#0086
	dw #007f,#0077,#0071,#006a
	dw #0064,#005f,#0059,#0054
	dw #0050,#004b,#0047,#0043
	dw #003f
.l19d4
	db #10,#37,#08,#34,#18,#37,#18,#17
	db #06,#3c,#02,#17,#06,#3c,#02,#17
	db #06,#3b,#02,#17,#06,#3b,#02,#17
	db #06,#39,#02,#17,#06,#39,#02,#17
	db #08,#37,#10,#35,#08,#32,#10,#35
	db #20,#17,#06,#3b,#02,#17,#06,#3b
	db #02,#17,#06,#39,#02,#17,#06,#39
	db #02,#17,#06,#37,#02,#17,#06,#37
	db #02,#17,#08,#36,#10,#35,#08,#32
	db #20,#35,#08,#17,#10,#37,#08,#34
	db #20,#37,#08,#17,#10,#39,#08,#3b
	db #10,#3c,#08,#3b,#08,#3c,#08,#39
	db #08,#3b,#08,#3c,#08,#3d,#10,#3e
	db #08,#3b,#08,#39,#08,#38,#10,#37
	db #08,#34,#10,#37,#20,#17,#06,#3c
	db #02,#17,#06,#3c,#02,#17,#06,#3b
	db #02,#17,#06,#3b,#02,#17,#06,#39
	db #02,#17,#06,#39,#02,#17,#08,#37
	db #0c,#38,#04,#17,#10,#38,#10,#39
	db #10,#3b,#20,#3c,#08,#17,#08,#3b
	db #08,#3c,#08,#3d,#10,#3e,#08,#3c
	db #10,#3b,#08,#39,#08,#38,#08,#39
	db #10,#3c,#08,#3b,#18,#39,#08,#37
	db #08,#38,#10,#39,#10,#3a,#08,#3b
	db #18,#40,#20,#3c,#08,#3c,#18,#17
	db #ff
.l1a9d
	db #20,#17,#20,#17,#20,#17,#20,#17
	db #20,#17,#20,#17,#20,#17,#20,#17
	db #20,#17,#20,#17,#20,#17,#20,#17
	db #20,#17,#20,#17,#08,#2b,#08,#2d
	db #08,#2e,#08,#2f,#20,#17,#20,#17
	db #20,#17,#20,#17,#20,#17,#0c,#28
	db #04,#17,#0c,#28,#04,#17,#10,#2a
	db #10,#2c,#08,#2d,#08,#17,#08,#2d
	db #08,#2c,#08,#2b,#18,#17,#08,#29
	db #08,#17,#08,#29,#08,#17,#08,#2a
	db #08,#17,#10,#2a,#08,#2b,#08,#17
	db #08,#28,#08,#17,#08,#2d,#08,#17
	db #08,#28,#08,#27,#08,#26,#08,#17
	db #08,#26,#08,#17,#08,#2b,#08,#17
	db #10,#2b,#20,#17,#08,#2b,#10,#17
	db #ff
.l1b16
	db #08,#24,#08,#17,#08,#1f,#08,#17
	db #08,#24,#08,#1f,#08,#21,#08,#23
	db #08,#24,#08,#17,#08,#1f,#08,#17
	db #08,#1f,#08,#17,#08,#24,#08,#25
	db #08,#26,#08,#17,#08,#1f,#08,#17
	db #08,#26,#08,#23,#08,#24,#08,#25
	db #08,#26,#08,#17,#08,#1f,#08,#17
	db #08,#26,#08,#17,#08,#1f,#08,#17
	db #08,#26,#08,#17,#08,#1f,#08,#17
	db #08,#26,#08,#17,#08,#1f,#08,#17
	db #08,#24,#08,#17,#08,#22,#08,#17
	db #08,#21,#08,#17,#08,#21,#08,#17
	db #08,#26,#08,#17,#08,#26,#08,#17
	db #08,#21,#08,#17,#08,#26,#08,#17
	db #08,#1f,#08,#21,#08,#22,#10,#23
	db #08,#1f,#08,#21,#08,#23,#08,#24
	db #08,#17,#08,#1f,#08,#17,#08,#24
	db #08,#1f,#08,#21,#08,#23,#08,#24
	db #08,#17,#08,#1f,#08,#17,#08,#1f
	db #08,#17,#08,#24,#08,#25,#0c,#1c
	db #04,#17,#0c,#1c,#04,#17,#10,#1e
	db #10,#20,#08,#21,#08,#28,#08,#21
	db #08,#20,#08,#1f,#08,#17,#08,#24
	db #08,#17,#08,#1d,#08,#17,#08,#1d
	db #08,#17,#08,#1e,#08,#17,#10,#1e
	db #08,#1f,#08,#17,#08,#1c,#08,#17
	db #08,#21,#08,#17,#08,#1c,#08,#1b
	db #08,#1a,#08,#17,#08,#1a,#08,#17
	db #08,#1f,#08,#17,#10,#1f,#08,#24
	db #08,#1f,#08,#21,#08,#23,#08,#24
	db #18,#17,#ff
	db #01,#05,#02,#0b,#39,#01,#12,#05
	db #02,#04,#05,#02,#0f,#05,#02,#17
	db #05,#02,#15,#39,#01,#05,#05,#02
	db #03,#22,#01,#09,#39,#01,#1c,#39
	db #01,#0d,#0f,#02,#ff
	
.l5be2
	di
	push bc
	push af
	ld b,#f4
	out (c),a
	ld b,#f6
	in a,(c)
	or #c0
	out (c),a
	and #3f
	out (c),a
	ld b,#f4
	out (c),c
	ld b,#f6
	ld c,a
	or #80
	out (c),a
	out (c),c
	pop af
	pop bc
	ret
;
.game_name
	db "Herbert's Dummy Run",0
.game_year
	db "1986",0
.game_publisher
	db "Mikro-Gen",0
.music_author
	db "",0
.music_comment
	db "",0

	read "music_end_v1_0.asm"
